Formation R initiation
30/01/2025
Ce diaporama de formation a été rédigé dans le but d’être le support visuel des formations dispensées au MASA.
Ces formations s’adressent à des agents qui ont suivi les fondamentaux de la programmation.
Elles sont données en présentiel sur une durée de 2 jours.
Champ couvert par cette formation
Ce support couvre une initiation au language R avec R-studio et une découverte de l’environnement de production du MASA.
Pour information, les thêmes abordés sont:
01 - Présentation
02 - Les objets de R
03 - Manipulation et traitement de données
Ils sont orientés pour être utile aux agents du SSM Agriculture et se concentrent sur une utilisation de R via RStudio qui est mise à disposition des agents sur la plateforme interne Cerise basée sur RStudio Workbench.
Logiciel de traitement de données et analyse statistique :
offre un environnement interactif de développement statistique, analytique et graphique ; est doté d’un langage de programmation R ;
permet d’accéder à des données, de les manipuler et les analyser ;
S’interface avec les bases de données : Oracle, SYBASE, PostgreSQL, SQLITE…
Remplace SAS ou SPSS
Logiciel IDE : Integrated Development Environment
⇒ EN BAS A GAUCHE
permet de saisir des lignes de commande
affiche la log et les résultats
Log : historique des commandes, messages, etc.
→ cela signifie que R est disponible et en attente de la prochaine commande
→ cela signifie que R considère que la commande de la ligne précédente n’est pas terminée et qu’il « attend la suite »
Il faut alors :
- compléter la commande
ou
- sortir et recommencer en appuyant sur Echap
Possibilité de naviguer dans la console avec les flèches ↑ ou ↓
Appuyer sur Entrée pour exécuter une commande, ou cliquer sur
Pour effacer le contenu de la console : menu Edit > Clear console ou Ctrl+L
⇒ EN HAUT A GAUCHE
→ Pour soumettre la ligne ou la sélection depuis le script, il faut cliquer sur Run ou Ctrl + Entrée
Deux possibilités pour entrer une ligne de commande :
depuis le Script ⇒ plutôt pour les commandes à conserver
directement dans la Console ⇒ plutôt pour les commandes de vérifications
| Je besoin de … | J’écris … |
|---|---|
| Trouver pour vérification le minimum d’une variable | Console |
| Faire un tableau qui sera à refaire chaque mois | Script |
| Créer un référentiel qu’il faudra compléter/modifier | Script |
| Afficher une ligne d’un tableau pour vérifier l’exactitude de données | Console |
| Afficher une ligne d’un tableau pour écrire un primeur | Script |
Cerise est organisé en plusieurs répertoires :
00-Espace-Personnel => espaces personnels des agents, accessible par l’agent uniquement
01-Espace-de-Partage => lieu de partage général entre les différents acteurs
=> Ces deux derniers espaces sont découpés par opérations statistiques
Sous Cerise, le chemin “~/” fait référence à son espace personnel
On peut reconstituer facilement un chemin complexe de l’arborescence Cerise en utilisant l’auto-complétion de R :
Je commence par taper le chemin pointant vers l’espace personnel “~/”
Je place le curseur après le slash, et j’appuie sur la touche tabulation du clavier : l’arborescence est proposée
⇒ Sur le serveur, le répertoire de travail est l’espace personnel
Pour connaître le répertoire de travail : commande getwd()
Pour changer le répertoire de travail :
commande setwd(“chemin du rép souhaité”)
Ou dans l’onglet Files
Dans la page d’accueil Maafluence de Cerise, on peut trouver des liens vers divers outils utiles :
https://orion.agriculture/confluence/display/CER/CERISE_Espace+Utilisateurs
Une FAQ sur Cerise avec les questions récurrentes, les actualités
Des documents d’aide : le guide des bonnes mani’R, les fiches méthodologiques, les documents de formation
Le lien vers le forum R du ministère, toujours vif à répondre à toutes les questions
Le lien vers les actualités et les présentations du Groupe Utilisateurs R :
https://orion.agriculture/confluence/display/CER/Le+groupe+utilisateur+R
Quand on programme, il est préférable d’écrire les commandes dans un fichier texte plutôt que dans la console
Avantages:
Sauvegarde des opérations effectuées
Obligation de commenter son code
Code reproductible
Possibilité de partager son code
Les scripts sont des fichiers texte - ils portent l’extension .R
Pour exécuter des commandes d’un script, se positionner sur la ligne ou bien sélectionner l’ensemble des commandes à exécuter puis Ctrl+Entrée ou Code > Run Selected line(s) ou
Pour interrompre une exécution, on utilise le bouton « stop » de la console :
Pour exécuter tout le code d’un script préprogrammé, on utilise la fonction
source(file ="V:/FormationR/Prog/mon_fichier.R")
ou sous RStudio :
(dans ce cas, rien ne s’affiche dans la console lors de l’exécution)
R est sensible à la casse ⇒ Les caractères en minuscules ou en MAJUSCULES sont différents |
|
| Les commentaires s’écrivent après le symbole # | |
| Dans les chemins Windows, les \ doivent être remplacés par des / ou des \\ |
Nombreuses possibilités avec installation de base de R …
… Mais parfois besoin de nouvelles fonctionnalités
⇒ Utilisation de packages :
Boîte à outils : fonctions spécifiques (et parfois des données) relatives à un domaine particulier
Développés et maintenus par la communauté des utilisateurs de R, et diffusés via le CRAN (Comprehensive R Archive Network = réseau de serveurs)
Pour pouvoir utiliser un package, il doit être installé et chargé en mémoire :
un package n’a besoin d’être installé qu’une seule fois : « achat de la boîte à outils »
il faut le charger à chaque nouvelle session pour l’utiliser : « prendre la boite du placard »
En local
Un certain nombre de packages (base) sont fournis lors de l’installation de R et n’ont pas besoin d’être installés.
Sur Cerise
Les « packages du socle commun » sont déjà installés → onglet Packages : System Library
Possibilité d’installer des packages par les utilisateurs → onglet Packages : User Library
L’installation d’un package se fait de l’une des façons suivantes :
En cliquant sur les menus en haut de la fenêtre : Tools → Install packages
Via une ligne de syntaxe dans le code : install.packages(“nom_package”)
Via l’onglet packages dans la fenêtre en bas à droite : bouton Install
Charger un package (à chaque utilisation)
utiliser la ligne de commande library(nom_package) (conseillé pour la reproductibilité du programme)
cocher sur RStudio (déconseillé car si quelqu’un reprend le programme, il ne saura pas qu’il faut cocher)
RStudio: l’onglet Packages de la fenêtre en bas à droite indique les packages installés.
Les packages cochés sont ceux chargés, et donc utilisables.
Lorsqu’on essaie d’utiliser une fonction d’un package sans l’avoir chargé, un message d’erreur s’affiche
En plus des raccourcis claviers usuels (Enregistrer, copier-coller, annuler l’action précédente), un certain nombre de raccourcis clavier peuvent être très utiles au quotidien dans R :
| Raccourci clavier | Action |
|---|---|
| Ctrl + shift + n | Ouvrir un nouveau script |
| Ctrl + shift + m | Écrire un pipe %>% ou avec la nouvelle écriture |> |
| Ctrl + shift + c | Passer les lignes de code sélectionnées en commentaires |
| Ctrl + shift + r | Introduire un titre de section en commentaires |
| Ctrl + l | Vider la console |
| Crtl + f | Ouvrir un module pour du chercher-remplacer dans le script |
| Ctrl + i | Indenter automatiquement les lignes de code sélectionnées |
Dossier pour la formation initiation avec 3 sous-dossiers :
Dans quel répertoire êtes vous ? Le modifier pour que ce soit le dossier consacré à la formation
Quand on lance une commande (dans la console ou depuis un script), R fait le calcul (ou l’opération demandée) et affiche le résultat dans la console
⇒ Pour réutiliser, appeler ou modifier un résultat dans la suite du programme : stocker le résultat dans un objet ⇒ c’est l’affectation
⇒ Tout ce qui n’est pas stocké dans un objet n’est pas gardé en mémoire !
C’est comme si je voulais modifier un fichier Excel, il faut bien que je stocke mon travail !
Affectation : affecter à un objet une valeur Opérateur : <-
Affecter une valeur à un objet le crée en même temps
Pour afficher la valeur d’un objet, il suffit de saisir son nom
Possibilité de créer autant d’objets que l’on souhaite
Les objets créés apparaissent dans la fenêtre en haut à droite
La commande ls() liste tous les objets en mémoire
Si un objet est utilisé dans une opération, R le remplace par sa valeur
⇒ lorsqu’on assigne une nouvelle valeur à un objet déjà existant, la valeur précédente est perdue
Comme dans un tableur : si dans une cellule je colle une valeur, la précédente est écrasée
⇒ lorsqu’on assigne un objet à un autre, cela ne crée pas de lien entre eux : modifier le premier objet ne va pas modifier le second
Différent du tableur: b ne change pas si a change
rm(nom_objet) supprime l’objet nom_objet de la mémoire.
rm(list=ls()) supprime tous les objets en mémoire.
RStudio : L’icône de l’onglet Environment supprime aussi les objets. En utilisant l’affichage Grid, on peut effectuer une sélection.
R travaille en mémoire vive :
Environnement « trop plein » = impact sur les temps d’exécution et les performances de R
Cerise : mémoire partagée entre tous les utilisateurs
Les noms des objets doivent commencer par une lettre
Il est possible :
- d’utiliser des majuscules et des minuscules
- d’utiliser des chiffres, l’underscore (_) et le point (.)
Il est déconseillé :
- d’utiliser les caractères accentués
- de choisir des noms de variables non explicites, trop longs ou trop courts
- d’écraser les noms de fonctions existantes
Il est impossible :
- d’utiliser un espace
- d’utiliser certains noms réservés au système (else, for, T, F, …)
- d’écraser les noms de fonctions existantes
En R, les données sont stockées dans différents objets :
Vecteur : ensemble de valeurs de même nature
Data.frame : concaténation de plusieurs vecteurs (=colonnes), de natures potentiellement différentes
⇒ similaire à un tableau de données d’un tableur
Avancé:
Matrice : ensemble de valeurs de même nature (que des nombres, que des chaînes de caractères, que des booléens…)
Liste : objet regroupant différents objets
c() est une fonction qui concatène plusieurs informations de même nature
Attention : Si des éléments sont de modes différents, R les convertit automatiquement au même mode :
Rappel: c() permet de créer un objet, pour l’utiliser il faut le stocker et donc l’affecter !
Un vecteur peut être de quatre types :
numérique
caractère
logique (vrai ou faux)
facteur : vecteur dont les seules valeurs possibles sont les modalités d’une variable quantitative (ex : régions, départements…)
Valeur particulière : NA lorsqu’une variable est en valeur manquante
On détermine le type d’un vecteur avec mode(), on peut tester les types avec les fonctions is.numeric(), is.character(), is.logical(), is.na() etc :
data.frame: plusieurs vecteurs (colonnes) de même longueur et de mode potentiellement différents
⇒ C’est ce que l’on utilise le plus souvent
⇒ C’est un tableau de données, avec les observations en lignes et les variables en colonnes
Pour connaître les caractéristiques d’un data.frame, il y a plusieurs outils utiles :
str() donne la structure de la table (liste des colonnes, avec le type et les premières valeurs)
names() renvoie le vecteur des noms de colonnes
head() et tail() donnent respectivement les 6 premières et les 6 dernières lignes de la table (6 par défaut, peut être modifié)
nrow() et ncol() donnent respectivement le nombre de lignes et de colonnes de la table
Pour accéder aux différentes variables d’un data.frame, on utilise l’opérateur $
Mise en place :
Créer un nouveau programme et l’enregistrer
Charger les librairies : dplyr, tidyr, readr
Travail sur un data.frame : iris est un jeu de données fourni avec R
Combien de colonnes ? De lignes ?
Quel est le nom des variables ?
Afficher les 10 premières lignes
Quel est le type de chacune des variables ?
1.4 Comment travailler avec R au MASA
Depuis la plate-forme CERISE :
⇒ Adresse : https://rstudio.agriculture.rie.gouv.fr
⇒ PISTACHE : Pistache > Traitements statistiques et Diffusion > R > Migration SPSS et SAS vers R > Accès au WIKI Cerise - R > Accéder à Cerise
Cerise permet l’accès aux ressources déposées sur le serveur, la sauvegarde, le partage de code et le travail simultané. C’est l’usage recommandé.
En local sur son poste, sans intervention de Pastel
Existence d’une plate-forme CERISE de Préproduction :